<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 一、转换为布尔值（true、false）
        // 1. 手动转：Boolean(数据)，得到一个转换后的新数据
        let a = "0";  // true
        let b = Boolean(a);
        // console.log(b);
        // 2. 自动转：!!数据，得到一个转换后的新数据
        let c = !!a;
        // console.log(c);

        // 布尔值转换规则：0、""（空字符串）、undefined、null、NaN、false
        // 除了以上6个值以外，其他数据转换布尔值都为true。


        // 二、转换为字符串
        // 1. 手动转：
        // - String(数据)，得到一个转换后的新数据
        // - 数据.toString()，得到一个转换后的新数据【不适用于undefined和null】
        let d = 100;
        let e = String(d);
        let f = d.toString();
        // console.log(d, e, f);
        // 2. 自动转：数据 + ''，得到一个转换后的新数据
        let g = d + '';
        // console.log(d, g);

        // 三、转换为数字
        // 1. 手动转
        // - Number(数据)，得到一个转换后的数字
        // - parseInt(数据)，得到一个转换后的整数
        // - parseFloat(数据)，得到一个转换后的小数（原数据没有小数，不会自动加）
        
        let h = '100.1';
        console.log(Number(h));      // 整体转换，如果整体不能转换，得到 NaN
        console.log(parseInt(h));    // 从左往右1个一个转换，直到遇见不能转换的就截断
        console.log(parseFloat(h));  // 从左往右1个一个转换，直到遇见不能转换的就截断
        
        // 2. 自动转：数据 - 0，得到一个转换后的数字
        console.log(h - 0);



    </script>
</body>

</html>